//
//  main.m
//  NSString基本使用
//
//  Created by wenjim on 17/8/30.
//  Copyright © 2017年 WenJim. All rights reserved.
//

#import <Foundation/Foundation.h>

#import <string.h> // C语言

@interface IPhone : NSObject

-(char *)loadMessage;
-(NSString *)loadStrMessage;
@end

@implementation IPhone

-(char *)loadMessage
{
    return "今天我做主";
    // 只需要在C语言字符串前面加上@符号，系统就会自动将C语言字符串转换为OC字符串
//    return @"今天谁做主";
}

-(NSString *)loadStrMessage
{
    //    return "今天我做主";
    // 只需要在C语言字符串前面加上@符号，系统就会自动将C语言字符串转换为OC字符串
    return @"今天谁做主";
}

@end

int main(int argc, const char * argv[]) {
    
    // C语言中的字符串不是对象
    char * name = "CWJ";
    char name2[] = "CWJ";
    
    // OC中的字符串是一个对象
    // 正是因为OC中的字符串是一个对象，所以它就具备了很多功能
    NSString * str = @"CWJ";
    
    IPhone * ip = [IPhone new];
    
    // 注意：输出C语言的字符串用%s
    //      输出OC的字符串用％@, %@专门用于输出对象类型的
    
//    NSLog(@"conten = %s",[ip loadMessage]);
    NSLog(@"conten = %@",[ip loadStrMessage]);
    
    // 1.如何创建OC字符串
    NSString * strOne = @"CWJ";
    
    printf("age = %i, height = %f\n",26,1.75);
    
   NSString * strTwo = [NSString stringWithFormat:@"age = %i, height = %f",26,1.75];
    
    NSLog(@"strTwo = %@",strTwo);
    
    // 2.如何计算字符串的长度
    char sizeName[] = "cwj"; // c w j \0
    
    
    // 包含\0
    size_t size = sizeof(sizeName);
    printf("size = %lu\n",size);
    // 不包含\0
    size_t length = strlen(sizeName);
    printf("length = %lu\n",length);
    
    char sizeName2[] = "陈";
    
    // 包含\0
    size_t size2 = sizeof(sizeName2);
    printf("size = %lu\n",size2);
    // 不包含\0
    size_t length2 = strlen(sizeName2);
    printf("length = %lu\n",length2);
    
    // 不包含\0
    // 计算出来的是个数，而不是占用的字节数
//    NSString * nameStr = @"cwj";
    NSString * nameStr = @"陈";
    
    NSUInteger len = [nameStr length];
    
    NSLog(@"len = %lu",len);
    
    return 0;
}
